<?php
/*
Plugin Name: SISRESOnline
Plugin URI: http://www.devcreativelabs.com/wp-plugins/sisres
Description: El Sistema de Reservas de Citas M&eacute;dicas Online de la Cl&iacute;nica Morillas permite registrar la reserva de una cita m&eacute;dica por parte de un paciente de acuerdo con un rango de horario de atenci&oacute;n y m&eacute;dicos disponibles, pagar el costo del servicio en l&iacute;nea mediante la implementaci&oacute;n de una pasarela de pagos en cumplimiento de sus est&aacute;ndares y comunicar e integrar el sistema a implementar con el sistema de gesti&oacute;n hospitalaria LOLCLI.
Version: 1.0
Author: Eder Zuniga, Christian Nunez del Prado y Jose Mori
Author URI: http://URI_Of_The_Plugin_Author
*/
// CONSTANTES
define('SISRES_URL', get_option('siteurl') . '/wp-content/plugins/sisres');

define('SISRES_URL_ADMIN_CSS', SISRES_URL . '/app/view/resources/css');
define('SISRES_URL_ADMIN_JS', SISRES_URL . '/app/view/resources/js');
define('SISRES_URL_USER_CSS', SISRES_URL . '/app/view/resources/css');
define('SISRES_URL_USER_JS', SISRES_URL . '/app/view/resources/js');
define('SISRES_URL_CONTROLLER', SISRES_URL . '/app/controller');
define('SISRES_DEBUG', false);

//FACTORYs
require_once("app/factory/ControllerFactory.php");
require_once("app/factory/BOFactory.php");
require_once("app/factory/DAOFactory.php");

// CONTROLLERs
require_once("app/controller/GenericController.php");
require_once("app/controller/user/UserPruebaController.php");
require_once("app/controller/user/UserRegistrarDatosReservaController.php");
require_once("app/controller/user/UserRegistrarReservaFinalizadoController.php");
require_once("app/controller/admin/AdminPruebaController.php");
require_once("app/controller/admin/AdminConfigurarSisResController.php");

//VIEWs
require_once("app/view/admin/adminPruebaView.php");
require_once("app/view/user/userRegistrarDatosReservaView.php");
require_once("app/view/user/userRegistrarReservaFinalizadoView.php");

// DAOs
require_once("app/model/dao/PruebaDAO.php");
require_once("app/model/dao/MedicoDAO.php");
require_once("app/model/dao/HorarioDAO.php");
require_once("app/model/dao/TipoTarjetaDAO.php");
require_once("app/model/dao/FichaDAO.php");
require_once("app/model/dao/ReservaDAO.php");
require_once("app/model/dao/OpcionDAO.php");
require_once("app/model/dao/AccionVisaDAO.php");
require_once("app/model/dao/Transaction.php");

// BOs
require_once("app/services/GeneralSisResBO.php");
require_once("app/services/PruebaBO.php");
require_once("app/services/GenerarListadoBO.php");
require_once("app/services/ProcesarFichaBO.php");
require_once("app/services/ProcesarReservaBO.php");
require_once("app/services/ConsultaLolimsaBO.php");
require_once("app/services/VisaNetBO.php");
require_once("app/services/ws/GenericWS.php");
require_once("app/services/ws/ConsultaWS.php");
require_once("app/services/ws/VisaNetWS.php");
require_once("app/services/ws/VisaNetWSConsulta.php");
require_once("app/services/ConfigurarParametrosBO.php");

// ENTIDADES
require_once("app/model/Medico.php");
require_once("app/model/Horario.php");
require_once("app/model/TipoTarjeta.php");
require_once("app/model/Ficha.php");
require_once("app/model/Reserva.php");
require_once("app/model/Opcion.php");
require_once("app/model/Valor.php");
require_once("app/model/AccionVisa.php");
require_once("app/model/ws/RequestTokenResponse.php");
require_once("app/model/ws/PartnerDataResponse.php");
require_once("app/model/ws/GenericoPartnerDataWS.php");
require_once("app/model/ws/ServicioWS.php");
require_once("app/model/ws/MedicoWS.php");
require_once("app/model/ws/EstablecimientoWS.php");
require_once("app/model/ws/CitaWS.php");
require_once("app/model/ws/ScheduleDetailResponse.php");
require_once("app/model/ws/AppointmentInsertResponse.php");
require_once("app/model/ws/CETicketResponse.php");
require_once("app/model/ws/GETicketResponse.php");
require_once("app/model/HL7/SegmentoRGS.php");
require_once("app/model/HL7/SegmentoSCH.php");
require_once("app/model/HL7/SegmentoPID.php");
require_once("app/model/HL7/SegmentoAIS.php");
require_once("app/model/HL7/SegmentoAIP.php");
require_once("app/model/HL7/SegmentoAIL.php");


// UTILs
require_once("install/FiltrosPagina.php");
require_once('app/util/log/LogUtil.php');
require_once('app/util/Util.php');
require_once('app/util/RenderUtil.php');
require_once('app/util/ValidadorUtil.php');
require_once('app/util/WP_Info.php');
require_once('app/util/Constantes.php');

//TYPEs
require_once('app/model/type/Enum.php');
require_once('app/model/type/EstadoSistemaType.php');
require_once('app/model/type/EstadoRegistroComunType.php');
require_once('app/model/type/EstadoFichaType.php');
require_once('app/model/type/EstadoReservaType.php');

//Nusoap
require_once('lib/nusoap/nusoap.php');


function ejecutarScriptSQL($pathScriptSQL) {
    global $wpdb;
    $scriptSQL = fopen($pathScriptSQL, "r");
    $scriptSQLContent = fread($scriptSQL, filesize($pathScriptSQL));
    fclose($scriptSQL);
    $statements = explode(";", $scriptSQLContent);
    foreach ($statements as $statement) {
        $statement = trim($statement);
        if ("" != $statement) {
            LogUtil::debug("file sisres", "statement=$statement");
            $wpdb->query("$statement");
        }
    }
}

function crearTablas() {
    ejecutarScriptSQL(dirname(__FILE__). '/install/CrearTablas.sql');
}

function eliminarTablas() {
    ejecutarScriptSQL(dirname(__FILE__). '/install/EliminarTablas.sql');
}

function instalarPlugin() {
    //crearTablas();
}

function desinstalarPlugin() {
    eliminarTablas();
}

function crearMenuSISRES() {
    // Agregando menu SISRESnline
    add_menu_page('Adminitraci&oacute;n de Sistema de Reservas', 'SISRESOnline', 1, __FILE__, 'crearPaginaSISRES');
    // Agregando submenu debajo de menu SISRES
    add_submenu_page(__FILE__, 'Configuraci&oacute;n', 'Configuraci&oacute;n', 2, 'adminConfigurarSisResView', 'crearPaginaConfiguracionSISRES'); //1
    //add_submenu_page(__FILE__, 'Prueba', 'Prueba', 2, 'adminPruebaView2', 'crearPaginaPruebaSISRES'); //1
}

function addHeader(){
    echo '<link type="text/css" rel="stylesheet" href="'.SISRES_URL_ADMIN_CSS.'/style.css" />';
}

register_activation_hook(__FILE__, 'instalarPlugin');
register_deactivation_hook(__FILE__, 'desinstalarPlugin');
add_action('admin_menu', 'crearMenuSISRES');
add_action('admin_head', 'addHeader');

?>